#ifndef ZOMBIE_HPP
#define ZOMBIE_HPP

#include <SFML/Graphics.hpp>
#include <SFML/Graphics/Drawable.hpp>
#include <iostream>
#include <cstdio>

class Zombie : public sf::Transformable, public sf::Drawable
{
    public:
    enum eFacing { Up, Left, Down, Right };
    enum eState { Idle, Walk, Run, TOTAL_STATES };

    Zombie(std::string);
    ~Zombie();

    eFacing Facing();
    eState State();

    void jump(void);
    void update(float d_t);

    private:
    std::string _Name;

    sf::Texture _Texture;
    sf::Sprite _Sprite;

    sf::CircleShape _Circle;

    eFacing _Facing;
    eState _State;

    /* Height above ground */
    float height;
    /* Change in height per second */
    float dHeight;
    int jumpsLeft;

    virtual void draw(sf::RenderTarget&, sf::RenderStates) const;
};

#endif // ZOMBIE_HPP
